#ifndef MD5_H_
#define MD5_H_

#define BLOCK_BITS 512
#define BLOCK_BYTES (BLOCK_BITS / 8)
#define BLOCK_WORDS (BLOCK_BITS / 32)

#include <stdint.h>
#include <stddef.h>

typedef struct {
    uint32_t words[BLOCK_WORDS];
} block_t;

void md5_init();
void md5(uint8_t *digest, const uint8_t *message, uint64_t message_bytes);

#endif
